#include"ListNode.h"
ListNode* createList(int length){
    ListNode* head=(ListNode*)malloc(sizeof(ListNode));
    if(head==NULL)
        return NULL;
    head->value=0;
    head->next=NULL;

    /* 头插法 
    
    ListNode* first=head;
    for(int i=1;i<=length-1;i++){
        ListNode* p=(ListNode*)malloc(sizeof(ListNode));
        p->value=i;
        p->next=NULL;
        p->next=first->next;
        first->next=p;
    }
    
    */
    

    /* 尾插法 */

    ListNode* last=head;
    for(int i=1;i<=length-1;i++){
        ListNode* p=(ListNode*)malloc(sizeof(ListNode));
        p->value=i;
        p->next=NULL;
        last->next=p;
        last=p;
    }
    
    return head;
}

/* 递归本质是栈 */
void printListFromLastToFirst(ListNode* head){
    if(head!=NULL){
        if(head->next!=NULL){
            printListFromLastToFirst(head->next);
        }
        printf("%d\n",head->value);
    }
}